package top.whysu.gps.constant;

/**
 * e_system_config对应的key常量
 */
public class SystemConfigKey {
    /**
     * 当前航行模式 {@link DataDictionary.Mode}
     */
    public static final String CURRENT_MODE = "currentMode";
    /**
     * 当前航行状态 {@link DataDictionary.ModeStatus}
     */
    public static final String CURRENT_MODE_STATUS = "currentModeStatus";
    /**
     * 当前航线日程表ID, 对应navigation表的id
     */
    public static final String CURRENT_NAVIGATION_ID = "currentNavigationId";

    /**
     * 公共参数
     */
    public static final class Common {
        /**
         * 串口发送间隔时间（单位：秒）
         */
        public static final String COMMON_SEND_TIMING = "commonSendTiming";
        /**
         * 停止航程后是否将所有航线置为等待发送状态（1是2否）{@link DataDictionary.YesOrNo}
         */
        public static final String COMMON_RESET_SEND_STATUS = "commonResetSendStatus";
        /**
         * 新增航线时，如果指定了航线点，则默认将其后的路线状态都置为【等待发送】状态
         */
        public static final String COMMON_RESET_STATUS_AFTER_ADD = "commonResetStatusAfterAdd";
        /**
         * 是否手动模式 {@link DataDictionary.YesOrNo}
         */
        public static final String BY_HAND = "commonByHand";
        /**
         * 航向
         */
        public static final String COMMON_COURSE = "commonCourse";
    }

    /**
     * 航行模式
     */
    public static final class Navigation {
        /**
         * 航行模式：航速误差范围
         */
        public static final String SPEED_SCOPE = "navigationSpeedScope";
        /**
         * 航行模式：航向误差方位
         */
        public static final String COURSE_SCOPE = "navigationCourseScope";
        /**
         * 航行模式：发送完成后默认切换xx模式（默认漂浮模式）{@link DataDictionary.Mode}
         */
        public static final String FINISH_MODE = "navigationFinishMode";
        /**
         * 航行模式：经纬度误差范围
         */
        public static final String DEGREE_SCOPE = "navigationDegreeScope";
        /**
         * 航行模式：默认速度
         */
        public static final String DEFAULT_SPEED = "navigationDefaultSpeed";
    }

    /**
     * 漂浮模式
     */
    public static final class Wander {
        /**
         * 漂浮模式：漂浮范围起点经度类型{@link Constant.Longitude}
         */
        public static final String START_LONGITUDE_TYPE = "wanderStartLongitudeType";
        /**
         * 漂浮模式：漂浮范围起点经度
         */
        public static final String START_LONGITUDE = "wanderStartLongitude";
        /**
         * 漂浮模式：漂浮范围起点纬度类型{@link Constant.Latitude}
         */
        public static final String START_LATITUDE_TYPE = "wanderStartLatitudeType";
        /**
         * 漂浮模式：漂浮范围起点纬度
         */
        public static final String START_LATITUDE = "wanderStartLatitude";
        /**
         * 漂浮模式：漂浮范围终点经度类型{@link Constant.Longitude}
         */
        public static final String END_LONGITUDE_TYPE = "wanderEndLongitudeType";
        /**
         * 漂浮模式：漂浮范围终点经度
         */
        public static final String END_LONGITUDE = "wanderEndLongitude";
        /**
         * 漂浮模式：漂浮范围终点纬度类型{@link Constant.Latitude}
         */
        public static final String END_LATITUDE_TYPE = "wanderEndLatitudeType";
        /**
         * 漂浮模式：漂浮范围终点纬度
         */
        public static final String END_LATITUDE = "wanderEndLatitude";
        /**
         * 漂浮模式：速度范围
         */
        public static final String WANDER_SPEED_SCOPE = "wanderSpeedScope";
        /**
         * 漂浮模式：速度误差范围
         */
        public static final String WANDER_SPEED_ERROR_SCOPE = "wanderSpeedErrorScope";
    }

    /**
     * 锚泊模式
     */
    public static final class Anchor {
        /**
         * 锚泊模式: 锚停类别 {@link DataDictionary.AnchorType}
         */
        public static final String ANCHOR_TYPE = "anchorType";
        /**
         * 锚泊模式：旋转方向 {@link DataDictionary.RotationType}
         */
        public static final String ANCHOR_ROTATION_TYPE = "anchorRotationType";
        /**
         * 锚泊模式：半径大小
         */
        public static final String ANCHOR_RADIUS = "anchorRadius";
        /**
         * 锚泊模式：误差半径范围
         */
        public static final String ANCHOR_RADIUS_SCOPE = "anchorRadiusScope";
        /**
         * 转一圈360°需要多少时间
         */
        public static final String ANCHOR_TURN_AROUND_TIME = "anchorTurnAroundTime";
        /**
         * 手动设置的航线点（格式类似{"latitude": "", "longitude": "", "speed": "", "course": ""}）
         */
        public static final String ANCHOR_POINT_BY_HAND = "anchorPointByHand";
    }

    /**
     * 单点循环
     */
    public static final class Single {
        /**
         * 单点循环：航速误差范围
         */
        public static final String SPEED_SCOPE = "singleSpeedScope";
        /**
         * 手动设置的航线点（格式类似{"latitude": "", "longitude": "", "speed": "", "course": ""}）
         */
        public static final String SINGLE_POINT_BY_HAND = "singlePointByHand";
    }

}
